/**
* Created with CLion.
* User:Lenovo
* Date:2023-04-14
* Time:14:29
* Description:顺序表
*/
#ifndef AWA_SEQLIST_H
#define AWA_SEQLIST_H

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

//静态的顺序表
/*
#define N 10

typedef int SLDataType;

struct SeqList
{
    SLDataType a[N];
    int size;
};
*/

//动态的顺序表
typedef int SLDataType;

typedef struct SeqList
{
    SLDataType *a;
    int size;      //存储的有效数据的个数
    int capacity;  //容量
} SL;

void SLInit(SL *psl);
void SLDestroy(SL *psl);
void SLPrint(SL *psl);

// STL 命名风格
void SLPushBack(SL *psl, SLDataType x);       //尾插
void SLPushFront(SL *psl, SLDataType x);      //头插
void SLPopBack(SL *psl);                      //尾删
void SLPopFront(SL *psl);                     //头删
void SLInsert(SL *psl, SLDataType x, int pos);//随机插入
void SLErase(SL *psl, int pos);               //随机删除
int SLFind(SL *psl, SLDataType x);            //找到返回下标，没有返回 -1
void SLModify(SL *psl, int pos, SLDataType x);//更改


#endif //AWA_SEQLIST_H
